package br.com.ef.vendas.controller;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

import br.com.ef.vendas.entity.Projeto;
import br.com.ef.vendas.service.ProjetoService;

@ManagedBean(name="projetoBean")
@ViewScoped
public class ProjetoBean extends BaseBean {
	
	private static final long serialVersionUID = 1L;
	private Projeto projeto;
	private boolean editMode;
	private List<Projeto> projetos;

	@ManagedProperty("#{projetoService}")
	private ProjetoService projetoService;
	
	public void salvar(){

		if(projeto.getId() == null || projeto.getId().intValue() == 0){
			projetoService.createProjeto(projeto);
			addInfoMessage("Projeto criado com sucesso");
			projeto = new Projeto();
		}
		else{
			projetoService.updateProjeto(projeto);
			addInfoMessage("Projeto alterado com sucesso");
		}
		
	}
	
	public void create(){
		this.projeto = new Projeto();
		this.editMode = true;
	}
	
	public void update(){
		this.editMode = true;
	}
	
	public void cancel(){
		this.editMode = false;
		projetos = projetoService.getAllProjetos();
	}
	
	public void delete(){
		projetoService.deleteProjeto(projeto);
		System.out.println("deletou");
		projetos = projetoService.getAllProjetos();
		System.out.println("Projetos " +projetos.size());
	}
	
	public Projeto getProjeto() {
		if(projeto == null){
			projeto = new Projeto();
		}
		return projeto;
	}
	
	public void setProjeto(Projeto projeto) {
		this.projeto = projeto;
	}
	
	public boolean isEditMode() {
		return editMode;
	}

	public void setEditMode(boolean editMode) {
		this.editMode = editMode;
	}

	public ProjetoService getProjetoService() {
		return projetoService;
	}

	public void setProjetoService(ProjetoService projetoService) {
		this.projetoService = projetoService;
	}

	public List<Projeto> getProjetos() {
		if(projetos == null){
			projetos = projetoService.getAllProjetos();
		}
		return projetos;
	}

	public void setProjetos(List<Projeto> projetos) {
		this.projetos = projetos;
	}
}
